package com.yim.collection;

import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * Json处理工具
 * @filename JsonUtil.java
 * @author chenzhiyan
 * @datetime 2013-11-22下午2:25:12
 * @version
 */
public class JsonUtil {
	/**
	 * json格式字符串转换成json对象
	 * @param str
	 * @return
	 */
	public static JSONObject strToJson(String str){
		try {
			JSONObject jsonObject = JSONObject.fromObject(str);
			return jsonObject;
		} catch (Exception e) {
			 return null;
		}
	}
	
	/**
	 * 把json对象转换成指定的对象
	 * @param jsonObject
	 * @param clazz
	 * @return
	 */
	public static Object jsonToBean(JSONObject jsonObject,Class clazz){
		if (jsonObject != null) {
			try {
				Object  obj = clazz.cast(JSONObject.toBean(jsonObject, clazz));
				return obj;
			} catch (Exception e) {
				return null;
			}
		}else {
			return null;
		}
	}
	
	/**
	 * 把一个model对象转换成json对象
	 * @param obj
	 * @return
	 */
	public static JSONArray beanToJsonObject(Object obj){
		if (obj!=null) {
			try {
				JSONArray jsonArray = JSONArray.fromObject(obj);
				return jsonArray;
			} catch (Exception e) {
					return null;
			}
		}else {
			return null;
		}
	}
	
	/**
	 * 将list转化为JSONArray
	 * @param list
	 * @return
	 */
	public static JSONArray listToJson(List<Object> list){
		if (list!=null&&list.size()>0) {
			try {
				JSONArray json = JSONArray.fromObject(list);
				return json;
			} catch (Exception e) {
				return null;
			}		
		}else {
			return null;
		}
	}
	
	/**
	 * 将JSONArray转化为list
	 * @param jsonArray
	 * @param clazz
	 * @return
	 */
	public static List<Object> jsonToList(JSONArray jsonArray,Class clazz){
		if (jsonArray!=null) {
			try {
				List<Object> list = JSONArray.toList(jsonArray, clazz);
				return list;
			} catch (Exception e) {
				return null;
			}
		}else {
			return null;
		}
	}
}
